In this section, we’ll cover some of the important pytest.ini
settings that are commonly used in testing.
Logging
[pytest]
log_cli=true
log_level=DEBUG
log_format = %(asctime)s %(levelname)s %(message)s
log_date_format = %Y-%m-%d %H:%M:%S
Output Console Logs To Log File
Perhaps you want to keep a record of all unit tests that ran as part of a CI/CD pipeline?
[pytest]
log_file = logs/pytest-logs.txt
Timeout Slow Tests
[pytest]
timeout=5
Define Environment Variables
You can define runtime environment variables within pytest.ini
and share them across tests.
[pytest]
env =
ENVIRONMENT=dev
ACCOUNT=12345
Minimum Version
For example, I’ve specified that we need pytest==7.2
and actually installed pytest==7.1.3
.
[pytest]
minversion = 7.2
Set Required Plugins
Similarly, pytest-asyncio
allows you to test asynchronous code. You can set the standards within your pytest.ini
file like this
[pytest]
required_plugins = pytest-xdist>=3.2.0 pytest-env<=0.8.0
Use Custom Markers
[pytest]
addopts = --strict-markers
markers =
core: marks tests as core (deselect with '-m "not core"')
serial